1. Field of the Invention
The present invention relates, in general, to software package distribution in a distributed computer network, and, more particularly, to a system and method for responding to distribution error messages by servicing the distribution system, for accessing and processing distribution data at a service center and an affected intermediate distribution server, and for issuing a new distribution job from the intermediate distribution server that replicates the failed distribution effort.
2. Relevant Background
Distributed computer networks with de-centralized software environments are increasingly popular designs for network computing. In such distributed computer networks, a copy of a software program (i.e., an application package such as Netscape™, StarOffice™, and the like) is distributed over a data communications network by a master or central network device for installation on client network devices that request or require the particular application package. The master network device may be a server or a computer device or system that maintains current versions and copies of applications run within the distributed computer network.
When an application is updated with a new version or with patches to correct identified bugs, the master server functions to distribute updated application packages through one or more intermediate distribution servers and over the communications network to the appropriate client network devices, i.e., the devices utilizing the updated application. The client network device may be an end user device, such as a personal computer, computer workstation, or any electronic computing device, or be an end user server that shares the application with a smaller, more manageable number of the end user devices within the distributed computer network. In this manner, the distributed computer network provides stand-alone functionality at the end user device and makes it more likely that a single failure within the network will not cripple or shut down the entire network (as is often the case in a centralized environment when the central server fails).
While these distributed computer networks provide many operating advantages, servicing and correcting distribution to these client network devices during software installation and operation are often complicated and costly tasks. Correcting a failed distribution typically requires the redistribution of the package to each of the devices that did not receive the package, e.g., all devices downstream in the network from an affected or faulting device or server. To be effective, the redistribution preferably issues the redistribution command to assure use of the same installation parameters (i.e., the distribution command strings), the same distribution list, and the same packages.
However, servicing the network prior to redistribution and replicating the distribution process has been problematic and costly due to several factors. The networks often include large numbers of client network devices, such as intermediate distribution servers, end user servers, and end user devices upon which applications must be installed and which must be accessed and serviced when distribution problems occur. Additionally, the client network devices may be located nearly anywhere as the use of the Internet as the distribution path enables application packages to be rapidly and easily distributed worldwide. The master server is typically located in a geographic location that is remote from the intermediate distribution servers and client network devices, which further complicates servicing of the devices as repair and redistribution personnel need to be deployed at or near the location of the failing device such as from a regional or onsite service center. Efforts have been made to facilitate effective application package distribution and installation in numerous and remotely-located client network devices (see, for example, U.S. Pat. No. 6,031,533 to Peddada et al.). However, existing software distribution systems do not meet the industry need for effective package redistribution and servicing of network devices prior to redistribution.
Generally, during operation of a distributed computer network, a master server executing a distribution tool operates to distribute an application package over the communications network through intermediate distribution servers to a number of remote end user servers and end user devices. The receiving devices may be listed as entries in a network distribution database which includes a delivery address (e.g., domain and/or other information suiting the particular communications network), a client node network name, package usage data (e.g., which packages are used or served from that client network device), and other useful package distribution information. A distribution list is created for a particular application, and the distribution tool uses the list as it transmits copies of the application package to the intermediate distribution servers for final distribution to the appropriate end user servers and end user devices for installation.
If delivery fails, the affected or upstream client network devices or intermediate servers transmit error messages back to the distribution tool. In a relatively large network, the distribution tool may receive hundreds, thousands, or more error messages upon the distribution of a single application package. In many distributed computer networks, a service desk device or service center (e.g., a computer system or a server operated by one or more operators that form a service team) is provided to respond to software installation problems by issuing service requests and performing the steps necessary to redistribute the software packages. In these networks, the distribution tool gathers all of the error messages and transmits them to the service desk as error alerts. For example, the distribution tool may send e-mail messages corresponding to each error message to the e-mail address of the service desk to act on the faults, errors, and failures in the network.
The operator(s) of the service desk must then manually process each e-mail to determine if service of the network or client network devices is required, which service group is responsible for the affected' device, and what information is required by the service department to locate the device and address the problem. If deemed appropriate by the operator, the service desk operator manually creates (by filling in appropriate fields and the like) and transmits an electronic service request, i.e., service job ticket, to a selected service group to initiate service. The receiving service group then processes the job ticket to assign appropriate personnel to fix the software or hardware problem in the network device.
To redistribute the failed packages, the operator then typically has to first determine all distributions that failed during the time the affected devices, such as an intermediate distribution server, were down or inoperable for software package distribution. To perform this determination, the operator may have to access the distribution logfiles of the master device and/or interface with the distribution tool with the identified time period. The operator then manually restages each of the failed distributions by going to the physical location of the intermediate distribution server and accessing data in a distribution logfile stored on the server. The distribution data includes the names or identifications for the packages included in the failed distributions for dates in the identified time period and, significantly, the distribution command strings which provide the original parameters (such as a command to replace the existing software with the distributed software) used in the failed distribution. Access to the intermediate distribution server is often obtained through a user interface (such as a graphical user interface).
Problems and inefficiencies are created by the use of the existing service and redistribution methods. The manual identification of a downtime and of distribution lists and data is a time consuming and costly process. Further, the manual “restaging” allows a number of data entry errors to creep into the process. Similarly, the manual processing of the error alerts from the distribution system can rapidly overwhelm the service desk resulting in service delays or require large numbers of personnel to timely respond resulting in increased service costs. The manual processing of the error alerts also results in errors as the human operator may incorrectly fill out a job ticket with insufficient and/or inaccurate information making repair difficult or impossible.
Hence, there remains a need for an improved method and system for distributing software in a distributed computer network. Such a method and system preferably would be useful for enhancing servicing the problem that caused distribution failure and for improving (i.e., reducing errors and lowering costs and time requirements) the redistribution process. Further, the improved redistribution method and system preferably would insure that original distribution lists and distribution parameters are retrieved and utilized in the redistribution such that the software package is distributed and installed as initially intended.